package org.jsola.contract.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import org.jsola.core.dto.BaseDTO;

import javax.validation.constraints.NotNull;

import static org.jsola.contract.example.ContractConfigSiteExample.E_ENABLE;
import static org.jsola.contract.example.ContractConfigSiteExample.E_ENABLE_CHECK_FACE;
import static org.jsola.contract.example.ContractConfigSiteExample.E_ENABLE_CHECK_SMS;
import static org.jsola.contract.example.ContractConfigSiteExample.E_QUOTA_REMAIN;
import static org.jsola.contract.example.ContractConfigSiteExample.E_TOTAL_COUNT;
import static org.jsola.contract.example.ContractConfigSiteExample.E_TYPE;
import static org.jsola.contract.example.ContractConfigSiteExample.M_ENABLE_NOT_NULL;
import static org.jsola.contract.example.ContractConfigSiteExample.M_QUOTA_REMAIN_NOT_NULL;
import static org.jsola.contract.example.ContractConfigSiteExample.M_TOTAL_COUNT_NOT_NULL;
import static org.jsola.contract.example.ContractConfigSiteExample.M_TYPE_NOT_NULL;
import static org.jsola.contract.example.ContractConfigSiteExample.N_ENABLE;
import static org.jsola.contract.example.ContractConfigSiteExample.N_ENABLE_CHECK_FACE;
import static org.jsola.contract.example.ContractConfigSiteExample.N_ENABLE_CHECK_SMS;
import static org.jsola.contract.example.ContractConfigSiteExample.N_QUOTA_REMAIN;
import static org.jsola.contract.example.ContractConfigSiteExample.N_TOTAL_COUNT;
import static org.jsola.contract.example.ContractConfigSiteExample.N_TYPE;
import static org.jsola.core.example.BaseExample.E_ID;
import static org.jsola.core.example.BaseExample.M_ID_NOT_NULL;
import static org.jsola.core.example.BaseExample.N_ID;

/**
 * 租户电子合同配置
 *
 * @author JanusMix
 */
@EqualsAndHashCode(callSuper = true)
@ApiModel(description = "修改【租户电子合同配置】的参数")
@Data
public class ContractConfigSiteUpdateDTO extends BaseDTO {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(notes = N_ID, example = E_ID, required = true)
    @NotNull(message = M_ID_NOT_NULL)
    private Long id;

    @ApiModelProperty(notes = N_ENABLE, example = E_ENABLE, required = true)
    @NotNull(message = M_ENABLE_NOT_NULL)
    private Boolean enable;

    @ApiModelProperty(notes = N_TYPE, example = E_TYPE, required = true)
    @NotNull(message = M_TYPE_NOT_NULL)
    private Integer type;

    @ApiModelProperty(notes = N_TOTAL_COUNT, example = E_TOTAL_COUNT, required = true)
    @NotNull(message = M_TOTAL_COUNT_NOT_NULL)
    private Integer totalCount;

    @ApiModelProperty(notes = N_QUOTA_REMAIN, example = E_QUOTA_REMAIN, required = true)
    @NotNull(message = M_QUOTA_REMAIN_NOT_NULL)
    private Integer quotaRemain;

    @ApiModelProperty(notes = N_ENABLE_CHECK_FACE, example = E_ENABLE_CHECK_FACE)
    private Boolean enableCheckFace;

    @ApiModelProperty(notes = "租户id")
    private String siteId;

    @ApiModelProperty(notes = N_ENABLE_CHECK_SMS, example = E_ENABLE_CHECK_SMS)
    private Boolean enableCheckSms;


}

